package com.hz.service;

import com.hz.pojo.User;
import com.hz.utils.MassageJsons;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserService {
    /**
     * 根据用户open_id获取用户信息
     * @param open_id 用户唯一标识
     * @return
     */
    public abstract User getUserInfo(String open_id);

    /**
     * 第一次登录 注册用户信息
     * @param user 用户信息
     * @return
     */
    public abstract int addUserInfo(User user);

    /**
     * 根据用户标识添加手机号
     * @param open_id   //用户标识
     * @param user_phone    //手机号
     * @return
     */
    public abstract MassageJsons addUserPhoneInfo(String open_id, String user_phone);

    /**
     * 根据用户标识添加支付宝账号
     * @param open_id   //用户标识
     * @param user_phone    //手机号
     * @return
     */
    public abstract int addUserAlipayInfo(String open_id,String user_phone);

    /**
     * 更改用户最后登录时间
     * @param open_id   用户唯一标识
     * @user_last_login_time 最后登录时间
     * @return
     * @throws Exception
     */
    public abstract MassageJsons updLlastLoginTime(String open_id,String user_last_login_time) throws Exception;


    /**
     * 根据用户id查询用户信息
     * @param user_id
     * @return
     * @throws Exception
     */
    public abstract User getUserById(Long user_id) throws Exception;


    /**
     * 更改用户名称
     * @param user_name     更改的用户名称
     * @param open_id       更改名称的用户open_id
     * @return
     * @throws Exception
     */
    public abstract int updUserName(String user_name,String open_id)throws Exception;

    /**
     * 查询用户的直推用户
     * @param user_id
     * @return
     * @throws Exception
     */
    public abstract List<User> getDirect(Long user_id) throws Exception;


}
